﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Globalization;
using System.Data.SqlClient;

namespace ProyectoLab4
{
    public partial class Registro : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            AccesoBD ConectarServicioCorreo = new AccesoBD();
            SqlConnection cn = ConectarServicioCorreo.ObtenerConexion();  

            if (IsPostBack == false)
            {
                ///////////////////////////////////// LLENAR EL COMBOBOX DE PAISES  ///////////////////////////////////
                int i=0;
                RegionInfo reginfo;
                SortedList<string,string> ordenar = new SortedList<string,string>();
                CultureInfo[] cultInfoList = CultureInfo.GetCultures(CultureTypes.AllCultures);
                foreach (CultureInfo cultInfo in cultInfoList)
                {
                    try
                    {
                        reginfo = new RegionInfo(cultInfo.LCID);
                        ListItem lista = new ListItem(reginfo.DisplayName, reginfo.TwoLetterISORegionName);
                        if (ddlPaises.Items.IndexOf(lista) < 1)
                            ordenar.Add(lista.Text,lista.Text);

                    }
                    catch
                    { 
                        //Posibles errores de CultureInfo
                    }
                    ddlPaises.DataTextField = "Value";
                    ddlPaises.DataValueField = "Key";
                    ddlPaises.DataSource = ordenar;
                    ddlPaises.DataBind();
                    ddlPaises.SelectedIndex = 5;
                }
                ///////////////////////////////////////////////////////////////////////////////////////////////////////

                /////////////////////////////////////////// CARGAR FECHA  ///////////////////////////////////////////////
                for(i=DateTime.Now.Year;i>=1900;i--)
                    ddlAño.Items.Add(i.ToString());

                ddlMes.Items.Add("Enero");
                ddlMes.Items.Add("Febrero");
                ddlMes.Items.Add("Marzo");
                ddlMes.Items.Add("Abril");
                ddlMes.Items.Add("Mayo");
                ddlMes.Items.Add("Junio");
                ddlMes.Items.Add("Julio");
                ddlMes.Items.Add("Agosto");
                ddlMes.Items.Add("Septiembre");
                ddlMes.Items.Add("Octubre");
                ddlMes.Items.Add("Noviembre");
                ddlMes.Items.Add("Diciembre");

                for (i = 1; i <= 31; i++)
                    ddlDia.Items.Add(i.ToString());
                ////////////////////////////////////////////////////////////////////////////////////////////////////////////
            }
            
        }

        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            int cont = 0;

            if (txtUsuario.Text == "") 
            {
                lblErrorMail.Visible = true;
                cont++;
            }

            if (txtContraseña.Text == "")
            {
                lblErrorContraseña.Visible = true;
                cont++;
            }

            if (txtNombre.Text == "")
            {
                lblErrorNombre.Visible = true;
                cont++;
            }

            if (txtApellido.Text == "")
            {
                lblErrorApellido.Visible = true;
                cont++;
            }

            if (txtAlias.Text == "")
            {
                lblErrorAlias.Visible = true;
                cont++;
            }

            if (ddlPaises.SelectedItem.Text == "")
            {
                lblErrorNacionalidad.Visible = true;
                cont++;
            }

            if (ddlSexo.SelectedItem.Text == "")
            {
                lblErrorSexo.Visible = true;
                cont++;
            }

            if (ddlDia.SelectedItem.Text == "" || ddlMes.SelectedItem.Text == "" || ddlAño.SelectedItem.Text == "")
            {
                lblValidarFecha.Visible = true;
                cont++;
            }

            if (ddlMes.SelectedIndex == 4 || ddlMes.SelectedIndex == 6 || ddlMes.SelectedIndex == 9 || ddlMes.SelectedIndex == 11)
            {
                if (ddlDia.SelectedIndex > 30)
                {
                    lblValidarFecha.Visible = true;
                    cont++;
                    return;
                }
                else
                    lblValidarFecha.Visible = false;
            }
            else if (ddlMes.SelectedIndex == 2)
            {
                if (ddlDia.SelectedIndex > 28)
                {
                    lblValidarFecha.Visible = true;
                    cont++;
                    return;
                }
                else
                    lblValidarFecha.Visible = false;
            }

            if (txtTelefono.Text == "")
            {
                lblErrorTelefono.Visible = true;
                cont++;
            }

            if (txtDomicilio.Text == "")
            {
                lblErrorDomicilio.Visible = true;
                cont++;
            }

            if (cmpClave.IsValid != true)
            {
                cont++;
                return;
            }

            Usuario user = new Usuario(txtUsuario.Text+lblDominio.Text, txtContraseña.Text, txtNombre.Text, txtApellido.Text, txtAlias.Text, ddlPaises.SelectedItem.ToString(), ddlSexo.SelectedItem.ToString(), ddlDia.SelectedItem.ToString() + "/" + ddlMes.SelectedItem.ToString() + "/" + ddlAño.SelectedItem.ToString(), txtTelefono.Text, txtDomicilio.Text);
            GestionUsuarios gestionUser = new GestionUsuarios();
            if (gestionUser.EstaRegistrado(txtUsuario.Text) == false && cont == 0)
            {
                gestionUser.GrabarUsuario(user);
                Server.Transfer("Inicio.aspx");
            }
            else 
            {
                lblYaRegistrado.Visible = true;
            }
        }

    }
}